package com.question.business.menu.model.ao;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 菜单修改参数
 *
 * @author star
 * @since 2023-09-11
 */
@Data
public class MenuUpdateAO {


    /**
     * ID
     */
    @NotBlank(message = "ID不能为空")
    @Size(max = 20, message = "ID最长不能超过20位")
    private String id;

    /**
     * 菜单名称
     */
    @NotBlank(message = "菜单名称不能为空")
    @Size(max = 50, message = "菜单名称最长不能超过50位")
    private String menuName;

    /**
     * 菜单代码
     */
    @NotBlank(message = "菜单代码不能为空")
    @Size(max = 30, message = "菜单代码最长不能超过30位")
    private String menuCode;

    /**
     * 上级菜单ID
     */
    @Size(max = 20, message = "上级菜单ID最长不能超过20位")
    private String parentId;

    /**
     * 菜单类型(1:目录2:菜单3:按钮)
     */
    @NotNull(message = "菜单类型(1:目录2:菜单3:按钮)不能为空")
    private Integer menuType;

    /**
     * 菜单顺序
     */
    private Integer menuOrder;

    /**
     * 布局(0:否1:是)
     */
    @NotNull(message = "布局(0:否1:是)不能为空")
    private Integer layout;

    /**
     * 显示状态(1:显示2:隐藏)
     */
    @NotNull(message = "显示状态(1:显示2:隐藏)不能为空")
    private Integer visible;

    /**
     * 路由地址
     */
    private String path;

    /**
     * 重定向
     */
    private String redirect;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 图标
     */
    private String icon;

    /**
     * 启用状态(1:启用2:停用)
     */
    @NotNull(message = "启用状态不能为空")
    private Integer enabled;

    /**
     * 接口地址
     */
    @Valid
    private List<MenuInterfaceAO> interfaces;

}